<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学习vue</title>
    <script src="../js/vue.js"></script>
    <style>
        *{
            padding: 12px;
        }
    </style>
</head>
<body>
    <div id="root">
        <button @click="updatef1">更新f1</button>
        <div v-for="p in persons" :key="p.id">
            <!-- p.sex是undefined，vue不显示undefined -->
            {{p.name}} -- {{p.age}} -- {{p.sex}}
        </div>
        <!-- //可以通过在console里面Vue.set(vm._data.stu,'sex','male')来赋值 -->
        <!-- //可以通过在console里面Vue.set(vm.stu,'sex','male')来赋值 -->
        <!-- //可以通过在console里面vm.$set(vm.stu,'sex','male')来赋值 -->
        <button @click="addSex">点我加sex</button>
        <h1 v-if="stu.sex">sex : {{stu.sex}}</h1>
    </div>
    <script>
        Vue.config.productionTip = false
        const vm = new Vue({
            el:'#root',
            data:{
                stu:{},
                persons:[
                    {id:'001',name:"f1",age:30},
                    {id:'002',name:"z2",age:20},
                    {id:'003',name:"p3",age:50},
                    {id:'004',name:"ffff1",age:31},
                    {id:'005',name:"fzzzz2",age:21},
                    {id:'006',name:"fzzzzzz3",age:51},
                ],
            },
            methods:{
                updatef1(){
                    //这种改法，vue是检测不到的。
                    //因为数组没有setter，所以检测不到。
                    //通过索引值，更改数组，Vue是检测不到的。
                    this.persons[0] = {id:'001',name:"f999",age:50}
                    //Vue能监视到的数组的方法有
                    //push 最后面加1个
                    //pop 最后面删1个
                    //shift 最前面删1个
                    //unshift 最前面加1个
                    //splice 指定位置操作
                    //sort 排序
                    //reverse 反序
                    // 所以写成这个是可以的。
                    //且这个splice方法是Vue重写的方法，并不是Array.protoType.splice方法
                    this.persons.splice(0,1,{id:'001',name:"f99999",age:51})
                    //这样写也是可以的
                    Vue.set(this.persons,0,{id:'001',name:"f9999999",age:66})
                },
                addSex(){
                    //不能给vm或vm._data追加属性
                    // this.$set(this.stu,'sex','male')
                    Vue.set(this.stu,'sex','male')

                }
            }
        })
    </script>    
</body>
</html>